package com.example.gulimall.coupon;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * 一、如何使用nacos作为配置中心统一管理配置
 * 1、引入依赖
 * 2、创建一个bootstrap.properties
 *    配置应用名和nacos地址
 * 3、在配置中心配置一个数据集（DataId）即:应用名.properties
 * 4、给 应用名.properties添加任何配置
 * 5、动态获取配置
 *   两个注解：@RefreshScope:动态获取并刷新配置    @Value("${配置项的key }"):获取到配置
 *   如果配置中心和当前应用的配置文件中都配置了相同的项，那么优先使用配置中心。
 *
 * 二、细节
 * 1、命名空间:配置隔离
 *    默认：public(保留空间)；默认新增的所有配置都在public空间
 *    1）、开发，测试，生产:利用命名空间做环境隔离
 *        注意：在bootstrap.properties配置上需要使用的命名空间的唯一ID
 *    2）、每一个微服务之间互相隔离配置，每一个微服务都创建自己的命名空间，只加载自己命名空间下的所有配置
 * 2、配置集：所有的配置的集合
 * 3、配置集ID(Data Id)：类似于文件名
 * 4、配置分组:默认所有的配置集都属于DEFAULT_GROUP，可以自定义
 *
 * 具体使用：每个微服务创建自己的命名空间，使用配置分组区分环境：dev、test、prod
 *
 * 三、同时加载多个配置
 *1、微服务配置任何配置信息，任何配置文件都可以放在配置中心中
 * 2、只需要在bootstrap.properties说明加载配置中心中哪些配置文件即可
 * 配置中心有的优先使用配置中心中的
 *
 */
//将服务注册进nacos
@EnableDiscoveryClient
@SpringBootApplication
public class GulimallCouponApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallCouponApplication.class, args);
    }

}
